package com.pinyougou.manager.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.pinyougou.common.pojo.PageResult;
import com.pinyougou.pojo.Brand;
import com.pinyougou.service.BrandService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * 表现的注解是使用了dubbo中的@RestController
 * 注入数据是使用dubbo中的 @Reference
 * 接收请求是使用dubbo中的GetMapping
 */
@RestController
@RequestMapping("/brand")
public class BrandController {

    /**
     * 引用服务接口代理对象
     * timeout: 调用服务接口方法超时时间毫秒数
     */
    //@Autowired(required = false)
    @Reference(timeout = 10000)
    private BrandService brandService;


    @PostMapping("/save")
    public boolean save(@RequestBody Brand brand){

        try {
            brandService.save(brand);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
       return false;

    }

    /**
     *
     * 保存修改品牌
     */

    @PostMapping("/update")
    public boolean update(@RequestBody Brand brand){
        try {
            brandService.update(brand);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     *
     * 删除品牌
     */
    @GetMapping("/delete")
    public boolean delete(Long[] ids){
        try {
            brandService.deleteAll(ids);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;

    }
    /**
     *
     * 查询并分页
     */

    /** 分页查询品牌 **/
    @GetMapping("/findByPage")
    public PageResult findByPage(Brand brand, Integer page, Integer rows){
        // GET请求中文转码
        try {
            if (brand != null && StringUtils.isNoneBlank(brand.getName())){
                brand.setName(new String(brand.getName()
                        .getBytes("ISO8859-1"), "UTF-8"));
            }
        }catch (Exception ex){
            ex.printStackTrace();
        }

        return brandService.findByPage(brand, page, rows);
    }


    /**
     *
     * 查询所有的品牌
     */
    @GetMapping("/findBrandList")
    public List<Map<String,Object>> findBrandList(){
        return brandService.findAllByIdAndName();
    }




}
